One of the main differentiators between desktop client applications and “thin” web applications is the richness of the editing experience. Traditionally, web applications transact data with the server according to individual post-backs, which commit data to the server as the user navigates the application. Undoing a user action is oftentimes not possible once a user navigates away from a webpage. Conversely, a user can interact with a client application more fluidly, only saving data when the user is ready to do so. Moreover, if the user makes an editing mistake while working in the client application, the user can select “undo” one or more times to revert the changes with no effect to the saved file.
Many software technologies now require employees to interact with data on enterprise servers through web-type applications. Consider the editing of structured task data (e.g., adding/deleting tasks, assigning resources, changing scheduled data, etc.) commonly found in project servers, for example, but via a webpage. Without multi-level undo capability, this experience can be perilous as users are not allowed to undo actions. The user can perform frequent saves, but saving such datasets to the server is a slow process. Thus, the effective edit performance decreases proportionately with the user's comfort for typing complex data into a webpage.